CouchDB একটি ডকুমেন্ট-ভিত্তিক NoSQL ডাটাবেস, যা JSON ফরম্যাটে ডেটা সংরক্ষণ করে এবং HTTP API এর মাধ্যমে ডেটা অ্যাক্সেস করতে সহায়ক। PHP দিয়ে CouchDB এর সাথে ইন্টিগ্রেশন করা খুবই সহজ, কারণ CouchDB তে সমস্ত অপারেশন HTTP রিকোয়েস্টের মাধ্যমে পরিচালিত হয় এবং PHP এর জন্য বেশ কিছু লাইব্রেরি ও ক্লায়েন্ট প্যাকেজ রয়েছে যা এই রিকোয়েস্টগুলি পাঠাতে সাহায্য করে।
এখানে PHP ব্যবহার করে CouchDB এর সঙ্গে ইন্টিগ্রেশন করার ধাপগুলো আলোচনা করা হয়েছে।
PHP তে CouchDB এর সাথে ইন্টিগ্রেশন করার জন্য আপনি php-couchdb বা nano লাইব্রেরি ব্যবহার করতে পারেন। এই লাইব্রেরিগুলি HTTP রিকোয়েস্ট পাঠাতে এবং CouchDB এর ডেটাবেসের সঙ্গে যোগাযোগ করতে সাহায্য করবে।
আপনি composer প্যাকেজ ম্যানেজার ব্যবহার করে এই লাইব্রেরিটি ইনস্টল করতে পারেন।
composer require "doctrine/couchdb"
এটি nano লাইব্রেরি ইনস্টল করবে যা CouchDB ডাটাবেসের সাথে সংযোগ করতে ব্যবহৃত হবে।
CouchDB তে PHP ব্যবহার করে সংযোগ করার জন্য আপনি nano
বা cURL
ব্যবহার করতে পারেন। এখানে আমরা nano
লাইব্রেরি ব্যবহার করে একটি উদাহরণ দেখাচ্ছি।
<?php
require 'vendor/autoload.php'; // Composer autoloader
use Nano\CouchDB\Client;
$client = new Client("http://localhost:5984"); // CouchDB URL
// একটি ডাটাবেসে সংযোগ
$db = $client->useDatabase("my_database"); // 'my_database' আপনার ডাটাবেস নাম
// ডাটাবেস চেক করা
if ($db->exists()) {
echo "ডাটাবেসটি আছে!";
} else {
echo "ডাটাবেসটি নেই!";
}
?>
এখানে:
localhost:5984
ব্যবহার করা হয়েছে) দিয়ে Client তৈরি করা হয়েছে।CouchDB তে নতুন ডকুমেন্ট ইনসার্ট করার জন্য, আপনি insert()
ফাংশন ব্যবহার করতে পারেন।
<?php
require 'vendor/autoload.php';
use Nano\CouchDB\Client;
$client = new Client("http://localhost:5984");
$db = $client->useDatabase("my_database");
$doc = [
'name' => 'John Doe',
'age' => 30,
'email' => 'johndoe@example.com',
'type' => 'user'
];
// ডকুমেন্ট ইনসার্ট করা
$response = $db->createDocument($doc);
echo "ডকুমেন্ট সফলভাবে ইনসার্ট হয়েছে, ID: " . $response->_id;
?>
এখানে:
CouchDB তে get() ফাংশন ব্যবহার করে ডেটা রিড করা হয়। এখানে _id এর মাধ্যমে একটি নির্দিষ্ট ডকুমেন্ট পড়া যায়।
<?php
require 'vendor/autoload.php';
use Nano\CouchDB\Client;
$client = new Client("http://localhost:5984");
$db = $client->useDatabase("my_database");
// ডকুমেন্ট পড়া
$response = $db->getDocument("document_id");
echo "ডকুমেন্টের নাম: " . $response->name;
?>
এখানে:
CouchDB তে update() ফাংশন ব্যবহার করে ডকুমেন্ট আপডেট করা হয়। তবে, আপনাকে ডকুমেন্টের _rev ফিল্ডটি জানাতে হবে, কারণ CouchDB ডকুমেন্টের সংস্করণ ট্র্যাক করে।
<?php
require 'vendor/autoload.php';
use Nano\CouchDB\Client;
$client = new Client("http://localhost:5984");
$db = $client->useDatabase("my_database");
// ডকুমেন্ট পড়া
$doc = $db->getDocument("document_id");
// ডকুমেন্টের মান আপডেট করা
$doc->age = 31;
// ডকুমেন্ট আপডেট করা
$response = $db->updateDocument($doc);
echo "ডকুমেন্ট সফলভাবে আপডেট হয়েছে, নতুন রিভিশন: " . $response->_rev;
?>
এখানে:
CouchDB তে ডেটা ডিলিট করতে destroy() ফাংশন ব্যবহার করা হয়। এখানে _id এবং _rev প্রয়োজন।
<?php
require 'vendor/autoload.php';
use Nano\CouchDB\Client;
$client = new Client("http://localhost:5984");
$db = $client->useDatabase("my_database");
// ডকুমেন্ট পড়া
$doc = $db->getDocument("document_id");
// ডকুমেন্ট ডিলিট করা
$response = $db->deleteDocument($doc);
echo "ডকুমেন্ট সফলভাবে মুছে ফেলা হয়েছে!";
?>
এখানে:
CouchDB তে MapReduce Views ব্যবহার করে আপনি কাস্টম কুয়েরি তৈরি করতে পারেন এবং PHP দিয়ে সেগুলোর মাধ্যমে ডেটা কুয়েরি করা যায়।
<?php
require 'vendor/autoload.php';
use Nano\CouchDB\Client;
$client = new Client("http://localhost:5984");
$db = $client->useDatabase("my_database");
// View কুয়েরি করা
$response = $db->getView('user_views', 'by_name', ['key' => 'John Doe']);
foreach ($response->rows as $row) {
echo "Name: " . $row->key . ", Count: " . $row->value . "\n";
}
?>
এখানে:
CouchDB এর সাথে PHP ইন্টিগ্রেশন সহজ এবং কার্যকরী। nano লাইব্রেরি ব্যবহার করে আপনি সহজেই CouchDB এর সাথে সংযোগ তৈরি করতে পারেন এবং ডেটা insert, read, update, এবং delete করতে পারেন। এছাড়াও, Views এবং MapReduce ফাংশন ব্যবহার করে কাস্টম কুয়েরি তৈরি করা সম্ভব, যা আপনার ডেটাবেসের উপর দ্রুত এবং কার্যকরী বিশ্লেষণ করতে সহায়ক।
common.read_more